package com.todo.strategy.offline.iface.request;

import com.todo.common.common.entity.CurrentStaff;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * @author zhangwenxiang
 * @date 2024/3/17 19:22
 * @description
 */
@Data
@Schema(title = "追加平台攻略价值入参", description = "追加平台攻略价值入参")
public class AppendPlatformStrategyDetailReq {

    private CurrentStaff _staff;
    /**
     * 主键id
     */
    @Schema(title = "主键id-同攻略id", description = "主键id - 同攻略id")
    private String strategyId;
    /**
     * 年龄建议
     */
    @Schema(title = "年龄建议", description = "年龄建议")
    private String ageSuggest;
    /**
     * 旅行建议
     */
    @Schema(title = "旅行建议", description = "旅行建议")
    private TravelSuggest travelSuggest;
    /**
     * 说明
     */
    @Schema(title = "说明", description = "说明")
    private Instructions instructions;
    /**
     * 安全建议
     */
    @Schema(title = "安全建议", description = "安全建议")
    private SecuritySuggest securitySuggest;
    /**
     * 关联图片
     */
    @Schema(title = "关联图片", description = "关联图片")
    private List<String> imgList;

    @Data
    public static class Instructions {
        /**
         * 难度评分 1-10
         */
        @Schema(title = "难度评分 1-10", description = "难度评分 1-10")
        private Integer difficultyLevel;
        /**
         * 当地文化介绍
         */
        @Schema(title = "当地文化介绍", description = "当地文化介绍")
        private String localCulture;
    }

    @Data
    public static class SecuritySuggest {
        /**
         * 出行限制
         */
        @Schema(title = "出行限制", description = "出行限制")
        private String travelLimit;
        /**
         * 常规出行注意事项
         */
        @Schema(title = "常规出行注意事项", description = "常规出行注意事项")
        private String baseAttention;
        /**
         * 户外注意事项
         */
        @Schema(title = "户外注意事项", description = "户外注意事项")
        private String outDoorAttention;
        /**
         * 基础问题救助
         */
        @Schema(title = "基础问题救助", description = "基础问题救助")
        private String assistance;
    }

    @Data
    public static class TravelSuggest {
        /**
         * 出行建议
         */
        @Schema(title = "出行建议", description = "出行建议")
        private String travelSuggest;
        /**
         * 必备品
         */
        @Schema(title = "必备品", description = "必备品")
        private List<String> essentialItems;
        /**
         * 建议携带品
         */
        @Schema(title = "建议携带品", description = "建议携带品")
        private List<String> suggestCarry;
        /**
         * 季节建议
         */
        @Schema(title = "季节建议", description = "季节建议")
        private String seasonSuggest;
        /**
         * 槽点
         */
        @Schema(title = "槽点", description = "槽点")
        private String disclose;
    }

    public boolean baseCheck() {
        if (strategyId == null || ageSuggest == null || travelSuggest == null || securitySuggest == null) {
            return false;
        }
        return true;
    }
}
